# -*- coding: utf-8 -*-
# @Time        :2025/4/7 17:29
# @Author      :文刀水寿
# @File        : models.py
"""
 @Description :模型， 数据库相关
"""
from .exts import db

# 多表关系
# 一对多
#   班级：学生 = 1 ：N
# 班级表


class Room(db.Model):
    # 表名
    __tablename__ = 'room'  # 数据迁移就是让模型变成表，ORM就是让类变成模型
    # 定义表字段
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True, index=True)
    # 建立关联
    #  第一个参数： 关联的模型名
    #  第二个参数； 反向引用的名称，room对象
            # 让student去反过来得到room对象的名称： student.room
    # 第三个参数：  懒加载
    students = db.relationship('Student', backref='room', lazy=True )


# 学生表
class Student(db.Model):
    __tablename__ = 'student'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True)
    age = db.Column(db.Integer)
    # 外键: 根room表中的id字段关联
    roomid = db.Column(db.Integer, db.ForeignKey(Room.id))